Thursday, November 01, 2007

Mac OS X 10.5 Leopard Change No. 296: Goodbye lookupd -flushcache, Hello dscacheutil -flushcache

Lately I've had the good fortune of having my lovely (read: slow) Verizon Avenue internet service go to crap. It was working fine (albeit slowly), but all of a sudden about a week ago it got all funky. Now I can't access my GMail via POP or IMAP, I can't send mail via SMTP, I can't use FTP, I can't sign on to any chat accounts (AIM, GTalk, ICQ, Jabber, MSN, Yahoo!), and I can't access the iTunes Store. And this is true across three different computers - a MacBook Pro on 10.5 and a PowerBook G4 and an iBook G4 on 10.4. In fact, just about the only thing I can do is visit HTTP websites and download my email from AOL and another account via IMAP. Verizon was typically clueless as to why there was some connectivity but some wasn't working and, as these guys tend to do, they tried to pass the buck. (The money quote from the call was "You may need to call Mac".)

One suggestion that Verizon had that did sound useful (the first person I spoke with was totally lost but the second seemed to know what he was talking about) was trying to clear the DNS cache. Now even I'm totally lost as to what that really means, but sometimes the DNS cache can mess up connectivity to the internet. This happened to me once before and I had to "flush the DNS cache" before things got back to normal. A long time ago I remember somebody had made a little Mac OS X program where you just press a button to do this. That program appears to be no more, but I recalled that you can also do this via the command line.

A few minutes of googling and I found the command: lookupd -flushcache. Entering that, however, just got me -bash: lookupd: command not found. So I tried putting a sudo in front of that, as the internets directed me, but the result was the same. Some websites even said that you might want to begin it with su, or put a su in before entering it (this appears to be a pretty dangerous stunt, judging by the dire warnings that seemed to accompany the descriptions of su, but I dove in with the reckless abandon of an overly confident advanced-but-not-technically-inclined user), but again to no avail. In fact, this put another obstacle in my path: after doing the whole password bit as required by su, the result was su: Sorry. Huh?

So it was back to hitting the internets. A few more rounds of googling had me convinced that lookupd -flushcache was right. This is, until I came across this bit in Macsploitation. After running into the same problem as me, the author, who is clearly more technically inclined than me, was digging around in his computer's man pages (I just barely fended off the temptation to insert a male pornography joke here), which apparently can tell you all about these commands, and discovered that the command to flush the DNS cache has indeed been changed.

You'll be pleased to find out that in Mac OS X Leopard you can flush the DNS cache by entering dscacheutil -flushcache in the Terminal.

And it's as simple as that.

So does anyone who is a bit more technically inclined than me have any idea as to why this might be an improvement? (I'd like to maintain my optimistic assumption that if it weren't an improvement Apple wouldn't have changed it.)

Unfortunately, this did nothing to fix my connection problem. I went to Starbucks and was able to connect to everything from their computer without a problem on said MacBook Pro and said iBook. I then went to an area covered by my apartment building's wireless network (i.e., the same Verizon connection) and was able to connect without a problem via the same two computers. Yet here, with the ethernet cord plugged directly into these computers, the problem remained. I think I've safely eliminated the possibility that it's our computers. Anyone have any idea what might cause something like this?

Links to this post:

<\$BlogItemBacklinkCreate\$>

,

<< Home