"Also sprach Alan DeKok:" > "Peter T. Breuer" <[EMAIL PROTECTED]> wrote: > > Because the other is in capital letters, called PPP, and does not begin > > with an "x" or contain a "-", all things which would indicate > > variables. It looks like a constant. PPP. If it is a variable, then it > > does not look like one. It's the name of a well known protocol. > > Ah. That's why you're confused. You're thinking "value == > variable", when you should be thinking "attribute name = name of
No I am not. I am thinking x = 1 where x is "Whatever-It-Is" and 1 is "PPP", in this case. > variable, and values is the value of the variable." I have no idea why you think that is not what I am thinking of! It is perfectly simple: PPP is written in all caps. That makes it a literal constant in almost all languages known to mankind. What's more, it IS a literal constant! PPP IS the name of a well known portocol. You would get the same instinctive response out of me if you wrote Person = PETER !! > I can honestly say in nearly a decade of RADIUS work, this is the > first time I've seen someone make that confusion. What confusion? I really don't see why you don't see it .. You write somthing that looks like "x = 1" and now ask me to believe that "1" is a variable? > > OTOH you have things that are obviously field names, because they > > contain "-". > > Your assumptions are incorrect. The "-" character is just another I am not assuming anything, I am _telling_ you that about the only place anyone uses - signs in identifiers is in cobol and jcl record field names, and other languages which share portions of the same evolutionary history. > character, and has no special meaning of "field name". Oh yes it does. I'm afraid the rest of the universe disagrees with you! We use conventions for a reasonm, no? > I have no idea > why you think it means a field name, but it doesn't mean that in > RADIUS. Will you PLEASE step outside of the tiny universe you have built for youself, in which some things are upside down, and instead COMMUNICATE? Communication involves using a standard language, with standard semantics. If you don't don't use it, YOU are in the wrong, not the rest of the universe. To the rest of the universe, Foo-Bar-Gum is a field name, and I see no reason to suppose from what you say that that is not its semantics here! Field name is a perfectly good name for it! What else are you suggesting it is? Does it not appear in the records that are send to and fro by the protocol? Does it not bind a value at runtime? Well, then it is a field name. > > Field names have been used forever as variables. They > > are pointers to a value - i.e., variables. When you read > > "Colour-Spectrum" you do not expect it to mean the string "Colour-Spectrum", > > but instead a vector of real numbers. > > Your expectations are wrong. Please correct them. I don't know know what you mean. But ONE of us is the author of several languages, and the other is not. > > In this case, now I have a little experience, I GUESS: > > > > Values on the rhs of an = may be either constants (strings in quotes) > > or variables (names which have been introduced before that point on > > the rhs of an ==). > > Your guess is wrong. The values on the RHS are not variables, and > cannot be variables. They are *values*. Will you please stop using that word? They are TERMs! Just as they have always been in computing languages. Your terms may be either literal constants or variables, it appears. That's fine. Now please stop calling them "values"! That you don't define what you mean by "value" is part of the trouble! It's a meaningless word as you use it. To the rest of the universe, a value is what you find as an element of a domain. The domain of real numbers has values that are real numbers. A variable that ranges across the domain of reals will have value that is a real number, etc. I suspect that your computational domain is "strings". I suspect that the TERMS on the right hand side of your = signs may be either literal constants with VALUE a string, or VARIABLES with VALUE a string. Or compund terms. There's no need for mystery! It just takes a simple yes or no from you. But if you were to explain yourself clearly then you would save other people hours of time. > They may be pre-defined > names, numbers, fixed strings, or references to variables. But they > are NOT variables in and of themselves. And nobody said they were. Unless you want to redefine "is"! Because A IS a B does not imply that B IS an A! That PPP is a variable does not imply that whatever is on the rhs of an == must be a variable, just as I said, as you can read above. > > However, all my experiments failed to confirm that. > > Because it's not true. It is true, according to what the docs eem to say and other participants in this thread. Are you suggesting that PPP is instead a constant (as I believed)? Not that I am interested, but here is what your docs say: DEFAULT Service-Type == Framed-User, Framed-Protocol == PPP Service-Type = Framed-User, Framed-Protocol = PPP, Fall-Through = Yes If the request packet contains the attributes Service-Type and Framed-Protocol, with the given values, then include those attributes in the reply. See that Framed-Protocol is a FIELD! It says so: "If the request packet contains the attributes .." (attribute is another name for a field of a record). The right hand side (PPP) of the == must then either be another attribute (field name) or a constant or a newly introduced variable. It cannot be another field name, surely? There is no reference to "PPP" on the left anywhere in your examples. It must therefore be a constant or a newly introduced variable. I chose to believe that it is a constant, because it is lexically distinct from what I expect a variable name to look like. I expect variable names in lower case, always - "ppp" would be a variable. And PPP looks like a constant! It is the name of a well known protocol. However another responder has said that it is a variable. Well, that's fine by me. I can read A-B-C == FOO as an assignment to FOO if I really want to. But my experiments have indicated that it is not - that it IS a literal constant. So what distinguishes literal constants from field names in your language? Not the "-" signs, you have said! > > What I finally had success with was > > > > > > foo bar =~ "^(.+)" > > gum = `%{0}` > > Exactly. The string in "gum" There is no string in gum. The value of the FIELD (or variable, if you like to call it that) "gum" is that assigned to it on the right, which is achived by evaluating a perl expression that makes reference to an environment that is populated via the =~ expression. I imagine your implementation actually works by putting a special "flagged string" into gum near initialization time, and then reinterprets it on the fly when it encounters the string in various context, such as when it has to do operations on it. Thats fine, but it just means that your implementation is partially interpreted. Nothing wrong with that. It has to be done by late interpretation. It's an implementation fact. > is a reference to a variable. It is > not itself a variable. "gum" is the name of a variable. Puhleeeeeze. Nobody is claiming that it is a variable. It is a term. Terms may be many things, including constants, variable dereferences, or references, and compounds. In this case it is a compound expression. There is an environment dereference (%{0}) and an interpretation imperative (` `). > Have you *ever* done any programming? I have no idea why you would > make this elementary mistake. :-). If you would cease insulting, you would come to understand that you are talking from within a very small and very tight brown paper bag which may perhaps fit a little too tightly .. > > Tough - if I have to read the rfc why should I read your manual page? > > You're obviously confused about the difference between a > specification and an implementation. I am not :-)! That would be funny. > The RFC's are the specification > of RADIUS, they define attribute names and values. I am sure they define many things. The point is that your documentation does not define what IT is talking about, and therefore fails, as documentation for users. > The FreeRADIUS > manuals describe one implementation of RADIUS, they reference the > RFC's. No they don't. No manual should "reference an RFC", except in a footnote at the end! It's YOUR business to deal with the RFC, not ours! You are supplying the implementation, therefore we need to know how to deal with your tool, not how to deal with the RFC. > Are you really telling me that you expect us to copy all of the > RFC's into the FreeRADIUS manuals, and that you refuse to read the > RFC's because they're not in the FreeRADIUS manuals? That's nonsense. No - I am expecting you to behave less like a hot headed obstinate dummy and more like the intelligent human being that I expect and fully believe that you are. If *I* say that your documentation is incomprehensible in parts, it *is*. It is not a question of disputing it, it is a question of fixing it there and there and saying, oh, thanks, we didn't realise that we were talking about things backwards with respect to the rest of the universe there. OK. No muss, no fuss. > It's a ridiculous attitude, and doubly so because the "doc" > directory in FreeRADIUS contains the RFC's. I have no idea what it contains, since I have not looked. Are you seriously suggesting that I should take some hours (well minutes) out of my life to make up for the lack of explanation in your docs? Which by the way, are very well explained and commented generally, but just have this little problem that they are written in jargon in parts, backwards, by a person who has apparently forgotten that the rest of the universe uses the standard semantics, not the inverted ones you may well be using for all I can tell! > > You can jolly well define what you are talking about! Writing is about > > putting yourself in the shoes of your reader and guiding them to a > > semantic understanding that matches yours. Anything else is arrogance - > > i.e. a failure to take into account the other person. > > The documentation in FreeRADIUS assumes that the reader is willing > to read the documentation and the RFC's. They it can cease so assuming, because that makes it useless. If you doubt it, try reading a text on supersymmetry without explaining that when they write "->", they actually mean "<-". > It doesn't try to refute > every readers pre-defined notions about "field names", because that > would involve writing infinite amounts of documentation. No, it would involve you expressing yourself in standard notation and in terms of standard concepts, and using words in the way they are universally accepted. I don't know why you think that in A-B-C = FOO FOO is neither a variable nor a constant, but everyone else thinks that your documentation says it is one or the other, your examples seem to show that it is, and if you mean that it is only ever the literal constant "FOO", then the rest of us would like to know what difference there is in the name that makes it so! Would writing it "F-O-O" make it suddenly into a variable instead of a constant? Or is it that on the rhs of an =, the same syntactic terms have a different semantics than on the lhs? That's fine, but we need to be told! On the left they are clearly names of variables. On the right they are constants? > > > So "Framed-Protocol =3D PPP" is referencing two things: > > > attribute, and value, both defined in the RFC's. > > ^ "variable" (not value). > > ^ respectively. > > Read the RFC's. The correct term is "value". If you don't like it, > or you're unwilling to read the RFC's, I suggest you learn to deal > with the world not matching your expectations. > > > If you are going to start using the term "value" to mean a "variable", > > then you are going to confuse everyone else in the world. Please stop > > this private little joke now. > > In almost a decade of working with RADIUS, you are the first person > to be confused about the difference between "value" and "variable". I am not confused, thank you, you are. And the reason is probably that you have been working with radius for a decade. > > The proper linguistic name for the rhs of your "=" sign is a "term", > > not surprisingly! You seem to allow terms that are either constants > > (you may call THOSE "values"!) or variables. > > Well thank you ever so much for permission to call constants "values". You don't need permission. The value of a constant is a value. It cannot be anything else! Perhaps you are confused between the syntax and the semantics? The syntax dictates what you may write. The semantics dictates the interpretation of the syntax, its "value". The question here is what is the SYNTAX alowed on the right of an = sign. I have said that conventionally it is what is called a TERM. TERMs are syntactic constructs that may usally be either literal constants or variable names or compounds using other operators. The semantics of such a term will be that radius at run time INTERPRETS it as a VALUE from the DOMAIN of possible values. Clearer now? > But your assertion that the RHS can be a variable is simply wrong. Then why do your examples seem to say it is the case? My experiment seems to show that the rhs of a = sign is a constant, which has a value of course, when it is interpreted by radius. But your examples in the docs seem to show the opposite. I interpreted PPP as a constant. You seem to be saying it is not: variable", when you should be thinking "attribute name = name of variable, and values is the value of the variable." See? According to you, PPP is a variable! > > > $ radiusd -X > > > > It doesn't show the reply. All that shows up is: > > > > auth: type Local > > auth: user supplied User-Password matches local User-Password > > Login OK: [ptb/cacsd1] (from client localhost port 0) > > Sending Access-Accept of id 10 to 1.2.3.4:4196 > > Finished request 0 > > It's showing the reply. If you don't understand what the reply is, > that's your problem. Then why is it showing a different reply below? Because it is NOT saying "I sent no response" here! It should. > > Now - I eventually managed to find out that was because there > > was NO (extra?) reply data going back. > > So you don't know that RADIUS is composed of packets containing > attributes. You call it "extra" reply data. > > Geez, no wonder you're confused. You're unwilling to read the > existing documentation to discover the correct names for things in > RADIUS, but you're getting upset at us for writing correct definitions > in the documentation, because it doesn't match your pre-existing ideas. It is YOU that have the problem. There are a few incorrect "correct names for things" in radius, as far as I can see. That's the problem! > If you're unwilling to educate yourself, I suggest that you stop > reading the documentation, and stop asking questions on this list. No > one here will be able to help you if you refuse to believe their > answers. > > Alan DeKok. Will you please cease these insults? If you want to live in a small topsy-turvy world, that's fine by me, but it isn't the place the rest of the world is living in! All you have to do is make your documents unsderstandable by people who have the ordinary understanding and conventions of the rest of the world in their head! They're not far off! They're nice docs. I like them! That nobody can easily work out what parts of them mean is a cause for rejoicing, because you can IMPROVE them. If they were worse (like gnu-radius, maybe), people would not even get that far. Peter - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html