Does this indicate a line lenght limitation in inetd.conf ?

I am attempting to start the cvs pserver service.  The following line, placed in /etc/inetd.conf correctly starts the service for the repository 'firmware':

cvspserver3 stream tcp nowait root /sopt/utils/cvs/cvs-1.11.11_solaris/bin/cvs cvs -f --allow-root=/home/mwifi/repository/firmware

However, I have multiple repositories that I would like available through the same pserver service.  So, I add a couple of more repositories to the command in /etc/inetd.conf:

cvspserver3 stream tcp nowait root /sopt/utils/cvs/cvs-1.11.11_solaris/bin/cvs cvs -f --allow-root=/home/mwifi/repository/firmware--allow-root=/ho me/mwifi/repository/drivers --allow-root=/home/mwifi/repository/TestEngineering pserver

This works fine.

HOWEVER, when I add one more repository:

cvspserver3 stream tcp nowait root /sopt/utils/cvs/cvs-1.11.11_solaris/bin/cvs cvs -f --allow-root=/home/mwifi/repository/firmware --allow-root=/ho me/mwifi/repository/drivers --allow-root=/home/mwifi/repository/TestEngineering --allow-root=/home/mwifi/repository/SWCust pserver

The pserver service will not allow anyone to login.  Attempts to login return a consistent error:

cvs -d :pserver:gurhan@dcf401:2403/home/mwifi/repository/firmware login
CVS password:
CVS [login aborted]: unrecognized auth response from [hostname].

The CVS cedarquist user manual says "unrecognized auth response" errors are caused by a bad command line in 'inetd.conf', typically an invalid option or forgetting to put the 'pserver' command at the end of the line.  Another less common problem is invisible control characters that your editor "helpfully" added without you noticing."

I have ruled out invisible control characters.

The command that fails is over 256 characters.
The command that works is under 256 characters.
Solaris5.8 is supposed to have a line limit of 1022 but this does not appear to be holding true with inetd.conf.

Lastly, I rebooted the server starting inetd with the "-l 1022" option, which changes the listener queue length to 1022 characters.  This did not help.

I would deeply appreciate some help.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

If a line in inetd.conf is"broken" for readability  (as you've done in your examples above [Or EE has done for you!]), the last character of each line should be a "\" continuation character, with _no_ spaces after the \;

To show control characters when editing a file using vi, type  :set list
You'll then see $ symbols to mark any carriage returns.  The line would then look like this:

cvspserver3 stream tcp nowait root /sopt/utils/cvs/cvs-1.11.11_solaris/bin/cvs cvs -f  \$ --allow-root=/home/mwifi/repository/firmware --allow-root=/home/mwifi/repository/drivers \$ --allow-root=/home/mwifi/repository/TestEngineering --allow-root=/home/mwifi/repository/SWCust pserver$

Of course, if there are no line breaks in the line, you won't see any $ symbols apart from after the "pserver"...
jrtanenbAuthor Commented:
Thank you for responding.
Actually, the broken lines are just cut-n-paste errors from my posting.  In inetd.conf I have absolutely confirmed there are no line breaks.  Line breaks have not been the issue.  I apologize for the sloppiness in my posting.

Again, thank you for responding.
Looks like a line length issue to me.

However, you might actually try splitting into multiple lines with '\' line-continuation as tfewster shows above. Who knows, the problem might only be in the bit that reads inetd.conf, and not the bit that internally represents the lines to go and exec the program being called.
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

"The command that fails is over 256 characters" and that's where the problem lies. The max command line length for /bin/sh (and other shells) is 256 characters.

One solution to this is to move the repositories to a directory in /, say /CVS. That would allow:

cvspserver3 stream tcp nowait root /sopt/utils/cvs/cvs-1.11.11_solaris/bin/cvs cvs -f  \
--allow-root=/CVS/firmware --allow-root=/CVS/drivers \ --allow-root=/CVS/TestEngineering \
--allow-root=/CVS/SWCust pserver

which is below the 256 char limit.
jrtanenbAuthor Commented:
Yes...I had actually tried a similar strategy using symbolic links.  This helped me to demonstrate the problem was strictly a line-length issue.  The problem I face is that the user community has 12 repositories which I must make available through 1 pserver call (and, therefore, through 1 port).  No matter what I do to shrink the paths, 12 repositories will exceed the 256 character limit.  So, finally, after much pain, and some help from friends, I discovered that a call, in inetd.conf, like this will work:

cvspserver3 stream tcp nowait root /home/mwifi/cvs_ref/

Here is the content of

env -i /utils/bin/cvs [space delimited list of repositories] pserver

I am, actually, not sure why this works.  However, returns a result to inetd.conf that does not cause the line limit length to be exceeded.

Interestingly, the line in far exceeds the 256 character limit.  From what I have read, the line limit in Solaris is 1022 characters.  However, apparently, for certain utilities like inetd.conf the limit is still 256k.

Thank you, each, for attempting to assist me.  Even though your proposals did not fully address the problem I was facing, would you accept 100 points each for your efforts?
Hmm, good catch on the shell line length.

In this case, this is something to complain to Sun about, since POSIX says that compatible implementations must have a minimum line length of 4096 for shell lines.
No points for me, as I wasn't even in the right ball park!  I'd apologise for querying your original statements, but sometimes the obvious gets overlooked ;-)

jlevie is a Page Editor, so I think he can reduce the points for you.

Yes I can reduce the point total for the question. What would you like it to become?
jrtanenbAuthor Commented:
100 points seems fair.
points reduced from 500 to 100 'cause questioner provided own solution

jrtanenb, hope this is as you like, please make your decision for grading or feel free to ask for more assist

{{ ahoffmann EE Page Editor }}

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jrtanenbAuthor Commented:
I guess I really do not understand the implications of grading.  What does assigning a grade mean or do for those who answered the question?
jrtanenbAuthor Commented:
OK...I guess a grade is not appropriate, here.  Thanks!!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Unix OS

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.