-
-
Notifications
You must be signed in to change notification settings - Fork 101
Decouple marshalling/un-marshalling from socket I/O #72
base: master
Are you sure you want to change the base?
Decouple marshalling/un-marshalling from socket I/O #72
Conversation
7d07bd8
to
8ed5155
Compare
8ed5155
to
938b9bf
Compare
Looking at |
75e914e
to
e0ad5da
Compare
Any comments on this one? |
Philip Prindeville [email protected] wrote:
I'd looked it over quickly after you first posted, and didn't see significant issues. I spent some more time looking at it today. My understanding on your reintroduction of magic() for the openssl case I don't think commit b754e6d is all What use case do you have for using the linker spec to do the I suspect that commit 96417ab that For the main change, marshalling/unmarshalling in commit Also, as I commented on an earlier change, this changes the libtac API Comments in the Changelog should also be made, making the incompatible I'm not a fan of adding assert()'s, either. You've added an unconditional call to magic(); it needs to be wrapped Other than that ;), I think the basic ideas are good. I can't say I really fully reviewed all the changes (because the Dave Olson |
I tried building with openssl-devel on Fedora 24 and there were unresolved references to
I've worked in a lot of Embedded linux environments where the gcc had solid support, so any sort of Your experiences may vary.
Because it doesn't introduce any additional requirements.
If you grep for it, you'll mostly find:
And from my Boolean Algebra classes, I remember that Or am I missing something obvious?
Any other issues with the changes or just that?
That's fine. But there are a lot of changes still. See the previous summary I posted somewhere...
Ah, yes, good point. Wasn't sure if git was set up to auto-populate the Changelog of if that needed to be done manually.
Okay, not sure what a better way to handle this would be: no attribute, etc. string should be more than 255 characters since there's no way to represent its length. Calling the library with strings that violate this constraint is a logic violation. How would you prefer to handle it?
Ah, right. I didn't see that these changes had crept into
to contain the PRNG logic in one place?
Oh, good. ;-)
I had tested the code pre-porting. I'm on the road this week, but will test it more this weekend and incorporate your feedback. |
ae4f521
to
e73d3c6
Compare
Okay, made this change. |
Philip Prindeville [email protected] wrote:
As I said, it doesn't. There are no calls to magic() when using
Those days are long in the past. Yes, I've seen those also. And if somebody writes their own pthread library that is that
Sure it does, that linker magic doesn't work anywhere (and I
I'm just saying that having the ifdef different in one place is
nothing else that I specifically noticed.
I know. I just think you need to flag them in the commit message,
Add runtime checks, and error out. assert's that aren't compiled
I'm fine with it; I think it's cleaner. I didn't review the change that
Dave Olson |
e73d3c6
to
0feee29
Compare
My experience is that gcc support has been at least that solid, and since initialization is handled by glibc and gcc jointly, and the two are extremely tightly coupled, it's never been a problem. Using it with uClibc and eglibc has been equally solid. What if you're linking to a project that uses pthreads, and there are side-effects of the way that the magic initialization happens before the rest of your package is really to have any pthreads calls happen?
I don't think there are any changes in this round that would break the API. I've tried to make things remain backward compatible. The |
Philip Prindeville [email protected] wrote:
That seems to me extremely unlikely. I'll leave it up to the
The API changes, because now the caller has to free the new field
I don't think so, but more importantly, even if it does, the content for Dave Olson |
0feee29
to
d0a81ff
Compare
Fix 1-line regression in |
d0a81ff
to
a2a7fe7
Compare
Hi @daveolson53, Was doing some of that testing last night. That's where I noticed that there were issues with the MD5 encryption on longer messages (with more than 16 bytes of payload) and that a GETPASS response wasn't being handled correctly by So I fixed both of those. Now I'm testing something else but I can't tell if the problem is a configuration issue (on the server) or the code is generating an ill-formed packet with the wrong values, or I'm just not invoking it on the command line with the correct args. Got a few minutes to discuss this offline (via email or Skype-IM) so we don't clutter up the PR? I'm drafting an email to the tac_plus mailing list (for the Tacacs+ server that I'm using) to see if there's anything obviously wrong in the configuration. I might put you in blind-copy. Thanks |
Philip Prindeville [email protected] wrote:
Sure. I rarely use skype, so I can't say for sure it will work this My direct email is [email protected]
Dave Olson |
If anyone is interested, the post that I used on the initializer stuff for MSC/VC/gcc came from |
a2a7fe7
to
f4f11c2
Compare
89d559e
to
b23ea82
Compare
b23ea82
to
d0835a7
Compare
By the way, if anyone is wondering how I'm testing, I'm using tacc.c and testing against the tac_plus driver. I've taken Heasley's (shrubbery.net) version F4.0.4.29a and layered various fixes and RHEL/Centos/Fedora packaging fixes. Have a look at my fork of Heasley's tac_plus. |
d0835a7
to
8fccc5d
Compare
Rebased to master today. |
Merge PR #80 before this one. |
479e83b
to
a70aa3f
Compare
Derive the authentication type from tac_login string
It's precursory to separate marshalling functions from I/O if event-driven I/O is to be done, or if multiple Tacacs+ sessions can be active at the same time (you don't want to be polling on one socket and miss a timeout on another).
a70aa3f
to
bf190cd
Compare
It's precursory to separate marshalling functions from I/O if
event-driven I/O is to be done, or if multiple Tacacs+ sessions
can be active at the same time (you don't want to be polling on
one socket and miss a timeout on another).