I've been using getpeerucred on my server to capture the credentials of the connecting process successfully. Recently, I was asked to verify the credentials of the server from the client side of the connection so after reading the getpeerucred(3C) manual page, it would appear that they would be available after the call to connect().
What I am seeing is that getpeerucred() is providing me with the credentials of the client side of the connection (not the server side as I had hoped). I see my connecting processes uid/euid, gid/egid, etc and not the server processes information. I thought that perhaps since this was in a zone, TX environment that it could have been due to the fact that it was over a MLP, but I tried it within a single zone and got the same results. I'm currently running this on Solaris 10 8/07 with TX installed. So is it the case that getpeerucred should return the server credentials to the connecting side of the INET socket? Or am I reading the man page incorrectly? This message posted from opensolaris.org