01:13.33 |
*** join/#brlcad dli_
(~dli@dsl-69-171-148-245.acanac.net) |
01:57.41 |
*** join/#brlcad Ralith
(~ralith@S010600221561996a.vc.shawcable.net) |
02:22.30 |
``Erik |
um, tpkg.c is a trivial libpkg client/server
thingiemajigger |
05:33.33 |
*** join/#brlcad Stattrav
(~Stattrav@unaffiliated/stattrav) |
05:43.04 |
*** join/#brlcad Stattrav
(~Stattrav@122.172.156.61) |
05:43.04 |
*** join/#brlcad Stattrav
(~Stattrav@unaffiliated/stattrav) |
06:00.49 |
*** join/#brlcad yukonbob_
(~bch@20-144.wireless.kamloops.net) |
06:00.49 |
*** join/#brlcad dtidrow_
(~dtidrow@c-68-60-96-218.hsd1.mi.comcast.net) |
08:44.25 |
*** join/#brlcad dli_
(~dli@dsl-69-171-148-245.acanac.net) |
11:57.05 |
*** join/#brlcad d_rossberg
(~rossberg@BZ.BZFLAG.BZ) |
11:57.43 |
dloman |
Mernin all |
12:01.54 |
starseeker |
``Erik: looked at that - but it appears to be
a "the client talks, the server listens" setup |
12:02.21 |
starseeker |
dloman: did we ever get the geometry service
to the point where the client and server communicate back and forth
over the network? |
12:03.10 |
dloman |
starseeker: oh ya, one second |
12:03.17 |
starseeker |
based on what I've seen so far, the client and
server will each have to run both a server instance, with the
client sending its info to the server in order for the server to
communicate back |
12:03.41 |
starseeker |
(to the client' |
12:03.45 |
starseeker |
s server) |
12:04.07 |
dloman |
....um, no :) |
12:04.25 |
starseeker |
no? |
12:04.30 |
starseeker |
no what? :-P |
12:05.02 |
dloman |
one second, psudo afk |
12:05.08 |
starseeker |
k |
12:05.49 |
starseeker |
I've got to return some fans anyhow - if you
can post how to get geomclient and geomserv to communicate
meaningfully it would be a big help |
12:06.05 |
starseeker |
the C++ code is hard to follow |
12:07.13 |
dloman |
both use libNet. |
12:08.38 |
starseeker |
dloman: I'm trying to write a client that
doesn't use libnet |
12:09.01 |
dloman |
already got one in progress. |
12:09.07 |
starseeker |
I can send stuff to the server, but I can't
figure out how to get responses back |
12:09.37 |
dloman |
if you want, I can run u thru the code
tomorrow |
12:09.44 |
starseeker |
that'd be great |
12:10.35 |
starseeker |
you're not in today, I take it? |
12:11.29 |
dloman |
not, telework |
12:11.59 |
dloman |
okay, sorry |
12:12.10 |
dloman |
was moving the laptops upstairs, hooking up,
etc. |
12:12.18 |
starseeker |
that's OK |
12:13.29 |
dloman |
Okay, I am doing the java inteface thingy for
``Erik / guys upstairs |
12:13.35 |
dloman |
and am using that as a protocol
validation |
12:13.44 |
starseeker |
nods |
12:13.45 |
dloman |
i have a minimal client already going in
there. |
12:13.52 |
dloman |
that doesnt use libNet |
12:14.03 |
starseeker |
the bit I'm interested in right now is how
you're getting responses back from the server |
12:14.21 |
starseeker |
pkg_send I figured out finally, but it seems
to be a one way street so far |
12:20.10 |
starseeker |
I send the "RUALIVE" thing, but where do I
look in the pkg setup for the response? |
12:20.43 |
dloman |
...granted its a similar incarnation, java
style. |
12:20.50 |
dloman |
one second. |
12:21.00 |
dloman |
lost mt Mt Dew, had to find it. Priorities ya
know |
12:21.05 |
starseeker |
hehe |
12:21.13 |
starseeker |
of course - cars don't run without
fuel |
12:21.33 |
dloman |
heh, well getting my 2 cyls going dunt take
much :) |
12:21.46 |
dloman |
okay, |
12:21.47 |
dloman |
so |
12:21.53 |
dloman |
on the geomserv |
12:22.21 |
dloman |
we will assume that a connection has already
been established and that the server side has a valid Portal to
communicate thru |
12:23.04 |
dloman |
the server also will have a PortalManager that
will do all the selecting on all sockets (FDs) |
12:23.16 |
dloman |
the PM has a FD<->Portal
mapping. |
12:23.49 |
dloman |
when select returns a FD that is ready for
read |
12:24.01 |
dloman |
a lookup on the mentioned map occurs |
12:24.11 |
dloman |
and the Portal::read() fn is called. |
12:24.33 |
dloman |
Portal::read() is simply a set of PKG
calls |
12:24.46 |
dloman |
process(), suckin(), process() |
12:25.15 |
dloman |
now, the process() call will make pkg attempt
to form a complete PKG msg |
12:25.39 |
dloman |
due to C++ limitations in the arena of
function pointers, I had to short circuit the PKG's callback
functionality |
12:26.15 |
dloman |
normally, when a pkg_conn is instantiated, it
is fed a routing table |
12:26.44 |
dloman |
pkg then routes incoming pkg msgs according to
the 16bit pkg_type and this routing table |
12:27.48 |
dloman |
in libNet, that routing table consists of a
single type, and thus ALL pkg msgs are routed to
Portal::callbackSpringboard |
12:27.53 |
dloman |
..which is static |
12:28.59 |
dloman |
at this point, the bytes from the pkg data
load are putinto a ByteArray object and the GS type is
read |
12:29.14 |
dloman |
GS type is the first 16 bits of the pkg data
load. |
12:29.18 |
starseeker |
ok, I think I'm with you |
12:29.43 |
starseeker |
it then deserializes the message and figures
out what it's dealing with |
12:29.58 |
dloman |
the GSType is used in the NetMsg Factory to
figure out which NetMsg deserial cstr to call. |
12:30.03 |
dloman |
exactly. |
12:30.24 |
dloman |
after a successful deserial, the NetMsg
Factory hands the completed message over to the
NetMsgRouter |
12:30.49 |
dloman |
NetMsgRouter is (right now) a simple
subscriber/publisher setup |
12:31.56 |
dloman |
so if there is no routing data for a GS
NetMsg, then it's discarded |
12:32.12 |
dloman |
looking at
GeometryService::registerMsgRoutes, |
12:32.17 |
starseeker |
ok... where would it get routing
data? |
12:32.33 |
dloman |
i see there is no mapping (currently) for
RUALIVE |
12:32.59 |
CIA-14 |
BRL-CAD: 03starseeker * r43858
10/geomcore/trunk/src/GS/CMakeLists.txt: Whoops, copy paste
typo |
12:33.35 |
dloman |
hrm, there are two netmsg types that are
supposed to be handled by the Portal object, RemNodeNameSet and
RUALIVE |
12:33.46 |
dloman |
i wonder why its not working... |
12:34.03 |
dloman |
i am debugging the gs with all the changes
still, might be something there. |
12:34.09 |
starseeker |
k |
12:34.18 |
starseeker |
was going insane on
Sunday |
12:34.36 |
dloman |
but to answer your 'where does it get routing
data from ' question: its all configurable. |
12:34.56 |
dloman |
the geomserve does it in GeometryService.cxx
line 58 |
12:35.21 |
starseeker |
dloman: as an aside, it sounds like we're
paying a fairly high complexity price for being able to use
C++ |
12:35.52 |
dloman |
eh, kinda. |
12:36.09 |
starseeker |
not a criticism, just curious - how come C++
instead of C? |
12:36.14 |
dloman |
the pkg complexity has been minimized (with
lots of hairpulling and pain) |
12:36.28 |
starseeker |
right, but why not just do it the libpkg way
in C? |
12:36.34 |
dloman |
from what I understand, its from a few
differnt sources. |
12:37.02 |
dloman |
desire to have a C++ interface for the general
public |
12:37.22 |
dloman |
C++ lends itself to a plugin-able style app
arch better than C |
12:37.27 |
dloman |
and a few others i've forgotten. |
12:37.31 |
starseeker |
urm. For the GS, that's kinda moot - the
interface is the network protocol |
12:37.44 |
dloman |
ping brlcad, im sure he remembers all the
reasons :) |
12:37.55 |
dloman |
not really. |
12:38.14 |
dloman |
the design for the GS is to have modules of
functionality that can be 'plugged in' |
12:38.27 |
dloman |
aka, the STEPConverter plugin |
12:38.32 |
starseeker |
uh... that's on the backend |
12:38.46 |
dloman |
yeah |
12:39.35 |
starseeker |
dloman: ok, well I've got to get those fans
back - if you can debug why RUALIVE isn't doing anything I'd
appreciate it :-) |
12:39.44 |
dloman |
kk |
12:39.50 |
starseeker |
thanks, bbl |
12:47.19 |
*** join/#brlcad Stattrav
(~Stattrav@122.172.156.61) |
12:47.19 |
*** join/#brlcad Stattrav
(~Stattrav@unaffiliated/stattrav) |
13:33.57 |
``Erik |
hm, the build stuff I added was just copying
another file and updating it... BSD license is dandy with me
*shrug* (I think that technically, my contributions are considered
public domain) |
13:44.23 |
dloman |
``Erik: segfaulting in your magic endian
converter in geomcore |
13:45.10 |
dloman |
the whole dat[0] ^= data[7] ^= data[0] ^=
data[7] block |
13:47.48 |
dloman |
need a little help there since i verified the
data its manipulating is not NULL, but all those bitwise ops are
beyond me :/ |
13:48.21 |
``Erik |
hmmmm |
14:07.06 |
CIA-14 |
BRL-CAD: 03erikgreenwald * r43859
10/geomcore/trunk/src/libNet/netMsg/GenericEightBytesMsg.cxx: use
ntohll instead of the xor hack |
14:12.50 |
dloman |
excellent, thanks! |
14:13.02 |
``Erik |
that fixed it? O.o |
14:13.30 |
dloman |
well, i had to put the htohll call down in the
_serialize() fn too, but yeah, it seems to be working |
14:13.36 |
dloman |
well, it doesnt segfault anymore |
14:13.47 |
dloman |
im going to validate the values in a
second |
14:13.56 |
``Erik |
cool |
14:14.24 |
``Erik |
http://www.cnn.com/2011/POLITICS/03/13/crowley.stepping.down/index.html?hpt=T2 |
14:54.37 |
starseeker |
dloman: is there a client/server setup
anywhere (test app, whatever) that I can start up a server and
client, type "ping" in the client and have the *client* (not the
server) print out the server's *PONG* response? |
14:55.10 |
starseeker |
i.e. not a log message being generated by the
server, but a command line report in the client of what the
server's response was? |
14:57.49 |
dloman |
yes, Im debugging that very thing
atm |
14:58.32 |
starseeker |
cool, thanks |
14:59.04 |
starseeker |
feels another hair turn
grey... |
14:59.29 |
dloman |
hows the basement dewatering going? |
14:59.57 |
starseeker |
we're pretty much dried out - the test now is
to see what will happen with the pump actually in place |
15:00.16 |
dloman |
did you do an op test of the pump? |
15:00.40 |
starseeker |
heh - that's what finally stopped the flooding
from getting worse Thursday |
15:00.47 |
starseeker |
pump was working for a while to clear the
backlog |
15:01.04 |
dloman |
well, nothing like a burn in :) |
15:01.11 |
dloman |
good to hear you are all dried out. |
15:01.27 |
dloman |
sucky thing to be happening in a 'new' home
:/ |
15:01.46 |
starseeker |
no kidding - we're probably looking a this,
roof and gutters this spring |
15:11.06 |
dloman |
he he, neat. somehow, my PING messages are
all originating from the same time... a long time ago, resulting in
roundtrip times in the 3 million seconds range, lol |
16:03.00 |
dloman |
is htonll a libbu thing? |
16:03.13 |
starseeker |
I don't believe so |
16:03.47 |
dloman |
i cant find info on htonll.... htonl, sure but
not the ll version |
16:03.59 |
starseeker |
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/htonll.htm |
16:04.35 |
dloman |
bah, bloody google was replacing text for me
:/ |
16:04.55 |
starseeker |
also, see bu.h line 661 or
thereabouts |
16:04.56 |
dloman |
thanks :) |
16:05.06 |
starseeker |
not all platforms have it |
16:05.11 |
starseeker |
(apparently) |
17:21.21 |
CIA-14 |
BRL-CAD: 03davidloman * r43860
10/geomcore/trunk/src/GS/GSClient.cxx: Clean up PING and PONG
logging. |
17:22.34 |
CIA-14 |
BRL-CAD: 03davidloman * r43861
10/geomcore/trunk/src/GS/GeometryService.cxx: Clean up PING and
PONG logging on server side also. |
17:25.22 |
CIA-14 |
BRL-CAD: 03davidloman * r43862
10/geomcore/trunk/src/libNet/netMsg/GenericEightBytesMsg.cxx: Fix a
network/host ordering issue. |
17:38.00 |
*** join/#brlcad Stattrav
(~Stattrav@117.192.138.246) |
17:38.00 |
*** join/#brlcad Stattrav
(~Stattrav@unaffiliated/stattrav) |
17:55.28 |
starseeker |
gets back to basics: http://beej.us/guide/bgnet/output/html/multipage/index.html |
20:15.22 |
``Erik |
http://bravenewclimate.com/2011/03/13/fukushima-simple-explanation/ |
20:38.03 |
``Erik |
starseeker: ISC license (like the new BSD),
specifically for the mdoc macro package, http://mdocml.bsd.lv/ |
20:47.54 |
starseeker |
awesome |
20:49.45 |
*** part/#brlcad willdye
(~willdye@fern.dsndata.com) |
21:01.08 |
*** join/#brlcad willdye
(~willdye@fern.dsndata.com) |
22:01.23 |
Ralith |
why do we need a new BSD? |
22:02.07 |
starseeker |
Ralith: new BSD license (a.k.a Modified BSD
license) - no advertising clause |
22:02.39 |
Ralith |
oh, so the "new BSD", not the new
"BSD" |
22:04.41 |
starseeker |
right |