SuperSify is a simple console based client which you can use to log into
your Sify Broadband account. Currently, it exists only for Win32 systems.
SuperSify is a standalone client and does not require Sify's Client to work.
If you don't know what Sify
is, you shouldn't be here. Go away.
Apart from logging you on,
you on, and logging you off; SuperSify doesn't do much else. The really
cool part about it is, the really small memory footprint. As compared to
Sify's official clients - it takes a maximum of around 80KB of Physical
Compare that to the 8 MB that you lose to the Win32 client and the 15 -
20 MB which you lose to the Java client, I'd say it's worth not having a
GUI ... for now.
Console? aargh. How do we use this thing?
It's the simplest thing, really. SuperSify takes 11 switches, out of which only 2 are compulsory,
here they are ...
-u = username
-p = password
-m = macaddress
-h = heartbeat enable/disable
-b = heartbeat interval
-l = logout
-k = keypress supression
Since version 0.60b
-a = keep alive
-c = keep open
-v = verbosity
-o = override login/logout URLs
Allrighty, here's an example.
Suppose your username is "panduram" and my password is "bonehead".
(All further doc assumes this, so memorize this until you can say it
backwards in your sleep). Getting back on track, you can log on like
supersify -u panduram -p bonehead
If the heartbeat is enabled for your connection, SuperSify will start
"beating". You can quit anytime by typing in "quit" on the console. This
will exit SuperSify
logging you out. If you type "logout", you will be logged out of Sify
before SuperSify quits. You could also Ctrl+C SuperSify or close the
console, though this is not recommended. This will leave you logged in
You can quit the client without logging out (this happens if you disable
heartbeat or you quit in any way after logging in - Ctrl+C or using
quit). When you need to logout, invoke SuperSify like so.
supersify -u panduram -p bonehead -l Note:
A session ID is assigned to you when you contact the server. If this is
the ID used for logging in - it must consequently be used for logging
out. SuperSify will save this ID to a file (supersify.sid) for it's own
You don't really need the next eight switches, SuperSify will work
just fine without them; read on if you're interested
Mac Address (-m):
I know for a fact that Sify transmits your mac address as part of the
login string. I also know that
they don't seem to give a rat's ass about what the address actually IS,
or whether a value is even transmitted. I do have routine in there that
sends the mac address of one of your network adapters. If you have more
than one card - this might not be the actual mac address of the card
through which you are connected to Sify. But this is how it is in the
other Sify clients as well, so WTH anyway. The routine is slightly messy
and I haven't found a better alternative, it also takes the memory
consumed up to 80KB (otherwise it's about 55-60KB). So, you just might
want to supply your own address - actually pick up the address from your
card or anything really. Say you want to transmit "hero" as your mac
address ... this is how you can log in
supersify -u panduram -p bonehead -m hero
As far as I know, the hearbeat serves one prime purpose ... to tell Sify
you're still there and it should keep your connection alive. This is
useful for people who have time based connections, in case you forget to
logout, Sify will.
For the rest of us, with unlimited connections, this is a nuisance
actually. You can call up customer care and ask them to disable the
heartbeat thingy for your account. Apparently disabling the hearbeat is
not an atomic process, because my heartbeat is supposed to be disabled
(I called and asked), but the validation data says that it is enabled
(and therefore required to keep my connection alive).
What the hearbeat switch does is this.
If you don't specify the switch - it will do what the server
tells it to do, i.e. start the beat only if the server asks it to.
If you specify "-h enable" it will enable the beat - regardless
of the server setting
If you specify "-h disable" it will disable the beat -
regardless of the server setting. Actually any string excluding
enable will disable the hearbeat.
supersify -u panduram -p bonehead -h disable
is how you can disable your (connection's) heartbeat.
Disabling the hearbeat will cause the SuperSify to terminate immediately
after logging you in, there is no sense in keeping it running. You can
try this and see if your connection remains alive for more than 30
minutes. If it does then you're home free. If this isn't working for you
- either keep the heartbeat on, or call Sify and ask them to disable it.
Heartbeat Interval (-b):
By default, I think the heartbeat interval is 300 seconds. This is a
value that SuperSify receives from the Sify server. If for some reason
you want to increase or decrease the frequency of your hearbeat, you can
use this argument, the value is in seconds.
supersify -u panduram -p bonehead -b 60
is how the hearbeat is sent out every 60 seconds instead of the usual
300. If you find your connection dying frequently, you could try
reducing the beat interval from the usual 5 minutes.
Keypress supression (-k):
By default SuperSify will login / logout and then wait for you to press a key before exiting (if the heartbeat is disabled). If you use this flag, SuperSify exit without waiting for you to press a key.
SuperSify will always wait for a keypress if a failure in either the login or logout process occured, even if -k has been specified.
This is so that you can read the error message on the console and you are aware that something went wrong
Options since v0.60b
Keep Alive (-a):
supersify -u panduram -p bonehead -a 300/100 This will cause SuperSify to check if you are logged in every 300 seconds. If you are, it does nothing, if not it will attempt to log you in immediately.
If it fails to log you in, it will retry in 100 seconds.
Keep Open (-c):
Use this flag if you want SuperSify to remain active even if the heartbeat and keep alive are disabled.
In such a case, if this flag is not specified, SuperSify will exit immediately after logging you on/off.
Use this flag with an integer argument, ranging 0-2.
2 = Messages sent and recieved by SuperSify will be dumped to the console
1 = Messages received by SuperSify will be dumped to the console
0 = Messages not dumped
supersify -u panduram -p bonehead -v 2
Override URLs (-o):
Sify has recently changed it's login process. Until we figure out how this works,
you might need to specify this flag which forces SuperSify to use the old login page.
This might or might not work, depending on how far along Sify is the crossover to the the new protocol in your sector/zone/whatever.
Or maybe it will work forever, though I doubt it.
Bottom Line: If you see a "Receive data format error" message or SuperSify has stopped working for you suddenly, try using this flag. supersify -u panduram -p bonehead -o
Download & Installation
I hereby disclaim myself.
On a more serious note, I am not affiliated with Sify Ltd. in any way.
Also, this software was written with the best intent; but Sushubh,
SEO4India and I are not responsible for any damage or loss you may
suffer as a result of using this software. Sushubh and SEO4India only
provide hosting for SuperSify - Thanks a ton Sushubh :)
Note to Sify: Get real and write a decent client. Some of the "features" of your client are ludicrous.
I am not
doing this to malign sify in any way. If you have a problem with SuperSify, let me know.
No fancy installer is required atm, so I just have a single zip file.
Download v0.60b here (125 KB) - Please make sure you have read the disclaimer above. Unzip that
anywhere, fire up the console and you're ready to go.
Source for v0.52 (29 KB), see COMPILING for compilation instructions.
creating a shortcut to supersify on your desktop. Edit the shortcut
properties and append the arguments to the contents of the Target box.
For the uninitiated - here is a rundown of the process
Use winzip or any other zip utility to unzip SuperSify somewhere
on your hardrive.
Right click supersify.exe and drag it to your desktop
In the context menu that appears, choose "Create Shortcuts here"
Right click the shortcut thus created and choose Properties from
the context menu
Go to the Shortcut tab. In the Target Edit box, append your
username and password. If you installed SuperSify in C:\SuperSify -
your target box would should look like so C:\SuperSify\SuperSify.exe -u panduram -p bonehead
When you want to login, just double click this shortcut. You
could create another shortcut to logout or logout from within
Of course, you could fire up the console and invoke supersify manually.
Who needs Windows and all it's cruddy shortcuts and stuff, eh? I have
tested SuperSify on Windows 98, ME and XP and it should work Win 95
onwards. Please minimize the console window after it shows up. This has
a bearing on the Physical Memory used. You may subsequently maximize it
and do whatever you please. See the F.A.Q for details.
If you have a firewall installed, please make sure SuperSify has the necessary permissions. See the Changelog if you want older versions.
Why is this a beta version? I was pretty excited about this version way back in Feb 05.
Unfortunately, before I could complete working/testing the new features,
I had to move on to something which was reliably online for more than 12
hours a day (seriously). So I never had the time to test this version thoroughly first hand.
Where is the source? Source to version 0.52 which was the last stable release has already been
released. I will try to finish up whatever possible for the version which
I was unable to complete (version 0.60) since I disconnected Sify and moved
to BSNL; I will release that shortly.
I've stopped using Sify as a broadband service provider, so writing one will be a little tricky.
I'm also very short on time, and everyone seems to be pretty happy with a lightweight console client,
moving on to the other clients if the want a GUI. So SuperSify remains a console client.
What is the deal with the memory usage? / Why do I have to
minimize the window once?
This has something to do with Windows, Page Faulting and Working
Sets. When the application is just loaded - it flounders around in
your RAM and page faults a bit. However, when the application has
been properly initialized, and you minimize it, that's when Windows
probably sets it's working set (requested minimum and maximum values
of physical memory) to the correct values. I was trying to automate
that process but I achieved only marginal success. SuperSify takes
about 480 KB of Virtual Memory (840 KB if you don't use -m) - that's a constant. More work on
this front later. I was thinking Win32 ASM - but naah.
I'm getting this error message "SuperSify: Error receiving
I'm behind a router and I get this too. I guess there is some issue
somewhere - but I don't get this if I'm directly connected to sify.
The response really isn't important, what IS important is that the
beat is being sent. If you get this message "SuperSify: Error
sending beat" then there is a problem somewhere and your
connection could die in 20-30 minutes.
What happens when Sify goes down?
Well, when SuperSify starts, it will display a startup message and
attempt to contact the central Sify server. If it cannot, it will
simply tell you so and quit. If Sify goes down (or your gateway or
anything really) SuperSify is oblivious to this fact and will carry
on sending (or attempting to send) beats to the server. If Sify has
logged you out in the meanwhile, you will have to "quit" and invoke
SuperSify again. If Sify hasn't logged you out, SuperSify will
continue to keep you online. I might do something more intelligent
What is this libexpat.dll?
Expat is a free stream based XML parser which I use to parse XML
data from sify. Here is Expat's project page. A stream
parser is kinda weird after using DOM based parsers, but once you
get the hang of it, it's pretty cool. Good experience.
Will SuperSify make me attractive to all the chicks?
Alternatives? Sify Guard
actually uses SuperSify internally, has a Windows GUI and adds a bunch of handy features.
You can also try EasySify by Bhaskar Kishore. He has a
console version for Linux and a VB based GUI for Windows. He has
some pretty neat features & frankly speaking, I might have not
started on SuperSify if I had known about EasySify earlier. However,
I did start work on it - and so you have SuperSify. SuperSify is
also lower on RAM consumption, then again - it's console based
I also have a Java console version - which uses about 200KB (in
compiled executable form) and about 1MB in it's raw form. More Java
stuff after GUI, but if you would rather have a Java console earlier