default tcp host
Ralf Habacker
ralf.habacker at freenet.de
Thu Jun 21 00:16:37 PDT 2007
Daniel P. Berrange schrieb:
> On Wed, Jun 20, 2007 at 12:46:00PM -0400, Havoc Pennington wrote:
>
<snip>
>> DBusString is preferred to any manual string manipulation, basically
>> char* is only used for "immutable-ish" strings (precision guidelines r
>> us!). The codebase avoids most of string.h to minimize that category of
>> security (and crash) bugs. (For read-only use, you can quickly init a
>> DBusString with an existing char* with _dbus_string_init_const())
>>
>
> The reason I used a pre-allocated char * is because that's what the
> getnameinfo() contract requires when resolving the port from a
> sockaddr_storage struct. So while I could pass in a DBusString to
> the method, I'll eventually need to use a pre-allocated char * for
> the impl.
>
>
>> Since listen_tcp_socket / connect_tcp_socket are fairly complex now, it
>> may be worth thinking about how some of the logic can be moved
>> cross-platform so it doesn't have to be synced to Windows, though feel
>> free to punt on that and we'll figure it out later. I don't want to do
>> it if it results in a big mess, and I can't really think of a good
>> non-big-mess way to deal with this. Once there is a Windows
>> implementation it might be easier to see how much of it is common to the
>> platforms.
>>
>
> I was looking at the existing Windows impl of the listen/connect methods
> and they in fact seem to have two completely separate implementations of
> each method toggled on #ifdef ENABLE_DBUSSOCKET which AFAICT is never
> enabled in the codebase.
>
We had just disabled the DBusSocket code but leaved it in the source for
compatibility.
Only the code where ENABLE_DUSSOCKET is not defined is relevant.
> Windows has getaddrinfo/getnameinfo, so it ought to be possible to have
> an almost 100% unified impl, with just a few inline #ifdef's to deal
> with way Windows handles errno with its sockets code.
not to forget the EWOULDSOCKET return code from recv() when using non
blocking sockets, which need special handling.
> That all said I have zero Windows machines, so while I can provide some code as a
> staring point, I'm unable to compile/debug Windows.
>
We have windows machines for compiling/debugging which makes it able to
fix compile errors. Debugging will be possible too with some assistance
from the dbus experts.
Ralf
More information about the dbus
mailing list