Hi Gayathri,
    My Server and Client application are Windows based. Also the application
is huge, so its not possible to rewrite at this time. Maybe later we can do
that, but as for now, we are looking into alternate method for this. If we
decide to revisit this issue then i will look into this.

   Thanks.
// Harshvir
On Mon, May 9, 2011 at 6:57 PM, Gayathri Sundar <suraj...@gmail.com> wrote:

> Hi Eric.,
>
> First of all i am a she :) and I took a maternity break off from
> work..which is why I am jobless..but busy feeding and diapering my
> little one :)..sure I can take up your offer, please email me at
> suraj...@gmail.com.
>
> harsh.,
>
> The thing is as Eric says, you really have to rewrite ur server code
> once you make the fd non blocking..a simple fcntl is enuf. Also I
> would personally prefer sys poll over select on Linux..u could
> research about the former. Select is boring to me.
> the whole idea of non blocking is that a single call to ssl accept is
> not going to finish the complete ssl handshake. If you read the rfc
> you will know the multiple messages that are exchanged for a single
> ssl handshake, so in-between every read and write for the ssl
> handshake the non blocking fd would actually give you time to do
> "something else" . So what you really need is a state machine, which
> is noting but a array of function pointers (2d) in this case.
>
> I would write something like this
>
> States:  ssl accept pending, ssl accepted, ssl read blocked on write,
> ssl read,  ssl write blocked on read, ssl write,  ssl renegotiate
> Have a function for each state specified above which would do
> ssl_accept, ssl_read, ssl_write and so on.
>
> Thanks
> --Gayathri
>
>
>
> On Monday, May 9, 2011, Eric S. Eberhard <fl...@vicsmba.com> wrote:
> > Harsh,
> >
> > I would take up his offer of help.  Socket control over multiple sockets
> is tricky code and very specific to what you are trying to do.  My
> environment is single threaded and does similar things to yours -- but as
> Gayathri said, there are many details and exceptions and although with some
> online help or books I am sure with enough time you could do it (took me
> forever the first time) I suspect that this offer is as good as they get.  I
> am not jobless (lucky me) so I can't put in the time he can.
> >
> > Gayathri -- would you be interested in pure C coding on a contract basis
> (intermittent, not really a job, more like occasional tasks) -- the code we
> write runs on AIX, Linux, OS/X, SCO, HP/UX, Centos, etc. so it is a little
> tricky to make work.  If you have interest let me know your rates and real
> email and so forth.
> >
> > Thanks, Eric
> >
> >
> > At 08:33 PM 5/6/2011, you wrote:
> >
> > Harsh.,
> >
> > If u have any specific doubts in writing this asynchronous state
> > machine email me privately at suraj...@gmail.com.
> > I am pretty much jobless right now and can spend some time on this.
> >
> > Thanks
> > --Gayathri
> >
> >
> > On Friday, May 6, 2011, Harshvir Sidhu <hvssi...@gmail.com> wrote:
> >> Thanks, I will give this a try.
> >> // Harshvir
> >>
> >> On Fri, May 6, 2011 at 6:44 PM, Eric S. Eberhard <fl...@vicsmba.com>
> wrote:
> >> Change the sockets.  This is what I use:
> >>
> >> int setblock(fd, mode)
> >> int fd;
> >> int mode;                       /* True - blocking, False - non blocking
> */
> >> {
> >>         int flags;
> >>         int prevmode;
> >>
> >>         flags = fcntl(fd, F_GETFL, 0);
> >>         prevmode = !(flags & O_NDELAY);
> >>         if (mode)
> >>                 flags &= ~O_NDELAY;             /* turn blocking on */
> >>         else
> >>                 flags |= O_NDELAY;              /* turn blocking off */
> >>         fcntl(fd, F_SETFL, flags);
> >>
> >>         return prevmode;
> >> }
> >>
> >> Since it returns the existing mode you can use as such:
> >>
> >> prevmode = setblock(fd,0)                       /* turn of blocking */
> >> /* do your thing */
> >> (void)setblock(fd,prevmode);                    /* restore to original
> condition */
> >>
> >> At 04:15 PM 5/6/2011, you wrote:
> >>
> >> Thanks for the reply Gayathri.
> >> Do you mean to changing the sockets to non blocking, or when i create
> bio for ssl to make that as non blocking?
> >>
> >> Thanks.
> >>
> >>
> >> On Fri, May 6, 2011 at 6:03 PM, Gayathri Sundar <<mailto:
> suraj...@gmail.com>suraj...@gmail.com> wrote:
> >> Harsh,
> >>
> >> Okay from what I can understand, if you make ur underlying fd non
> blocking then it would work fine. Blocking FDs, unless and until one client
> is finished with its processing the other client will not be able to
> communicate with the server as the previous fd is blocked. The server is
> waiting on the 1st client to finish. When you have 3 ports and 3 clients
> then ofcourse it will work.
> >>
> >> thanks
> >> --Gayathri
> >>
> >>
> >>
> >> On Fri, May 6, 2011 at 5:50 PM, Harshvir Sidhu <<mailto:
> hvssi...@gmail.com>hvssi...@gmail.com> wrote:
> >> Gayatri,
> >> My server code is single threaded and i am using blocking sockets, i am
> using fd_set and select to wait for event on socket, and then performing
> operation based on the event that acts on a socket.
> >> I have an array of sockets to listen. So if i start listening on 3
> different ports and from my client machien, i try to connect on them at
> different ports then it works fine, but when i use 1 listen port then it
> dont work properly. What i mean to say by work properly is that the
> connection is established, but when i am waiting for select to return event,
> then it dont show any activity when i send data from client, only 1 of them
> works, 2 dont work.
> >> In addition to that, when i use WireShark to see packets, then it shows
> that machine has received the packet from client. But server dont show that
> alert.
> >> Thats why i think it could be some socket option which is affecting it.
> >>
> >> // Harshvir
> >>
> >>
> >>
> >> On Fri, May 6, 2011 at 5:37 PM, Gayathri Sundar <<mailto:
> suraj...@gmail.com>suraj...@gmail.com> wrote:
> >> Harshvir,
> >>
> >> SO_REUSEADDR sock option has noting to do with ur problem, please go
> thro the socket ops man page to get a better understanding. First find out
> if ur server code is a blocking i/o or non blocking I/O..if former then
> connections will be handled sequentially..only after the 1st client is
> finished will the server be able to respond to the 2nd connect request. If
> non blocking then there should be no problem. Check the code if you see and
> O_NONBLOCK flag set in some fcntl call or check for FIONBIO flag.
> >>
> >> Thanks
> >> --Gayathri
> >>
> >>
> >>
> >> On Fri, May 6, 2011 at 5:29 PM, Harshvir Sidhu <<mailto:
> hvssi...@gmail.com>hvssi...@gmail.com> wrote:
> >> Well i think this link is for my question.
> >> I have already done 1-5 from the Before you ask list.
> >> Number 6, i dont know anyone who use openssl.
> >> Number 7, it will take a lot of time to go through all the code, i was
> just trying to save some time. I thought user discussion forums are for this
> only. I apologize for my understanding.
> >>
> > ______________________________________________________________________
> > OpenSSL Project                                 http://www.openssl.org
> > User Support Mailing List                    openssl-users@openssl.org
> > Automated List Manager                           majord...@openssl.org
> >
> >
> >
> > Eric S. Eberhard
> > (928) 567-3727          Voice
> > (928) 567-6122          Fax
> > (928) 301-7537                           Cell
> >
> > Vertical Integrated Computer Systems, LLC
> > Metropolis Support, LLC
> >
> > For Metropolis support and VICS MBA Support!!!!
> http://www.vicsmba.com
> >
> > Pictures of Snake in Spring
> >
> > http://www.facebook.com/album.php?aid=115547&id=1409661701&l=1c375e1f49
> >
> > Pictures of Camp Verde
> >
> > http://www.facebook.com/album.php?aid=12771&id=1409661701&l=fc0e0a2bcf
> >
> > Pictures of Land Cruiser in Sedona
> >
> > http://www.facebook.com/album.php?aid=50953&id=1409661701
> >
> > Pictures of Flagstaff area near our cabin
> >
> > http://www.facebook.com/album.php?aid=12750&id=1409661701
> >
> > Pictures of Cheryl in a Horse Show
> >
> > http://www.facebook.com/album.php?aid=32484&id=1409661701
> >
> >
> > Pictures of the AZ Desert
> >
> > http://www.facebook.com/album.php?aid=58827&id=1409661701
> >
> > (You can see why we love this state :-) )
> >
> >
> >
> >
> >
> >
> >
> >
> > ______________________________________________________________________
> > OpenSSL Project                                 http://www.openssl.org
> > User Support Mailing List                    openssl-users@openssl.org
> > Automated List Manager                           majord...@openssl.org
> >
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
>

Reply via email to