On 7/10/06, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
i agree, driver interface in the 3.x days was much better and flexible,
i was using it and tried to hack 4.x since then.


It's not bad if all you want to do is Send/Revc, but it seems we
don't.  Let's come up with a plan for what functions we need. Accept
should go back in, for example.  Any ideas how we can cleanly handle
UDP?



Stephen Deasey wrote:
> On 7/10/06, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
>> NS_FATAL in context of these functions means unrecoverable error, but if
>> name is not very good it can be changed
>
> Here's some code checking for NS_FATAL and recovering...
>
>     if (status == NS_FATAL || sockPtr->reqPtr == NULL || !SetServer(sockPtr)) 
{
>         SockRelease(sockPtr, SOCK_SERVERREJECT, 0);
>         return NS_ERROR;
>     }
>
> It's not just the name though, the distinction seems meaningless, and
> indeed different parts of the code are confused about what it means.
>
> We need to switch back to a socket driver interface with multiple
> functions, as in the 3.x days. Pushing everything through:
>
>     typedef int (Ns_DriverProc)(Ns_DriverCmd cmd, Ns_Sock *sock,
>                                           struct iovec *bufs, int nbufs);
>
> just isn't working.  Check out the comments for the new NsDriver*
> wrappers, even the long existing DriverKeep and DriverClose don't make
> a lot of sense.
>
>
>
>> Stephen Deasey wrote:
>>> NS_FATAL doesn't make any sense.  Fatal means unrecoverable error, as
>>> in Ns_Fatal(...): and the server exits.
>>>
>>> Anyway, the following two disagree.  Whether they intend "request
>>> cannot be parsed" or "driver function not supported", NS_FATAL isn't
>>> the way to say it.
>>>
>>>
>>> /*
>>>  *----------------------------------------------------------------------
>>>  *
>>>  * Ns_DriverSetRequest --
>>>  *
>>>  *      Parses request line and sets as current Request struct, should be
>>>  *      in the form: METHOD URL ?PROTO?
>>>  *
>>>  * Results:
>>>  *      NS_ERROR in case of empty line
>>>  *      NS_FATAL if request cannot be parsed.
>>>  *      NS_OK if parsed sucessfully
>>>  *
>>>  * Side effects:
>>>  *      This is supposed to be called from drivers before the
>>>  *      socket is queued, usually from DriverQueue command.
>>>  *      Primary purpose is to allow non-HTTP drivers to setup
>>>  *      request line so registered callback proc will be called
>>>  *      during connection processing
>>>  *
>>>  *----------------------------------------------------------------------
>>>  */
>>>
>>> /*
>>>  *----------------------------------------------------------------------
>>>  *
>>>  * SockQueue --
>>>  *
>>>  *      Puts socket into connection queue
>>>  *
>>>  *      Call driver's queue handler for the last checks before actual
>>>  *      connection enqueue. NS_ERROR is valid here because that means
>>>  *      driver does not implement this call, we care about NS_FATAL status
>>>  *      only which means we cannot queue this socket. It is driver's
>>> responsibility
>>>  *      to allocate Request structure via Ns_DriverSetRequest call, 
otherwise
>>>  *      for all non-HTTP or not-parsed sockets this call will fail
>>>  *
>>>  * Results:
>>>  *      NS_OK if queued,
>>>  *      NS_ERROR if socket closed because of error
>>>  *      NS_TIMEOUT if queue is full
>>>  *
>>>  * Side effects:
>>>  *      None
>>>  *
>>>  *----------------------------------------------------------------------
>>>  */
>>>
>>>
>>> -------------------------------------------------------------------------
>>> Using Tomcat but need to do more? Need to support web services, security?
>>> Get stuff done quickly with pre-integrated technology to make your job 
easier
>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>> _______________________________________________
>>> naviserver-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/naviserver-devel
>>>
>> --
>> Vlad Seryakov
>> 571 262-8608 office
>> [EMAIL PROTECTED]
>> http://www.crystalballinc.com/vlad/
>>
>>
>>
>> -------------------------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> naviserver-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/naviserver-devel
>>
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> naviserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/naviserver-devel
>

--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
naviserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/naviserver-devel


Reply via email to