[icecast] cannot get icecast and ices to talk...authentication failed

Eric L. Brown eric at jyates.net
Thu Apr 3 21:30:07 PST 2003



I have a weird one...
I installed icecast 2 and ices .23 on Mandake, and am not having any luck
I compiled and installed the nightly icecast just today.

It seems to work fine, however when I telnet to it (10.0.0.3, port 8000),
I am unable to login unless the first line contains ONLY the password.

I used ethereal to see that iceS is trying to send to authenticate, and it
is sending (as the first line):
------------------------
SOURCE hackme /example1.ogg

<p>And then some other information (separated by a single \n), and after the
\n\n (double CR combo), it fails, and I am getting
------------------------
Error during send: Mount failed on http://10.0.0.3:8000/example1.ogg,
error: Could not login on server. Server message: HTTP/1.0 401
Authentication Required

<p>I feel kinda dumb in that I think that cannot really be this difficult,
but I am at a stand still.  Here are the config files:

icecast.xml 2.x (nightly build)
-------------------------------
<icecast>
        <location>Not Currently Used</location>
        <admin>Not Currently Used</admin>

        <limits>
                <clients>100</clients>
                <sources>2</sources>
                <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
                <client-timeout>30</client-timeout>
                <header-timeout>15</header-timeout>
                <source-timeout>10</source-timeout>
        </limits>

    <authentication>
        <!-- Sources log in with username 'source' -->
            <source-password>hackme</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>hackme</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>hackme</admin-password>
    </authentication>

    <!-- Uncomment this if you want directory listings -->
    <!--
    <directory>
        <yp-url><a href="http://www.oddsock.org/cgi-bin/yp-cgi</yp-url">http://www.oddsock.org/cgi-bin/yp-cgi</yp-url</a>>
    </directory>
     -->

        <hostname>localhost</hostname>

    <!-- You can use these two if you only want a single listener -->
        <!--<port>8000</port> -->
        <!--<bind-address>127.0.0.1</bind-address>-->

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
    </listen-socket>
    <!--
    <listen-socket>
        <port>8001</port>
    </listen-socket>
    -->

        <!--<master-server>127.0.0.1</master-server>-->
        <!--<master-server-port>8001</master-server-port>-->
        <!--<master-update-interval>120</master-update-interval>-->
        <!--<master-password>hackme</master-password>-->
    <!--
    <relay>
      <server>127.0.0.1</server>
      <port>8001</port>
      <mount>/example.ogg</mount>
      <local-mount>/different.ogg</local-mount>

      <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    -->

    <mount>
        <mount-name>/example1.ogg</mount-name>

        <username>othersource</username>
        <password>hell0</password>

        <max-listeners>1</max-listeners>
<!--        <dump-file>/tmp/dump-example1.ogg</dump-file> -->
        <fallback-mount>/example2.ogg</fallback-mount>
    </mount>

        <fileserve>1</fileserve>

        <paths>
                <basedir>/usr/share/icecast</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
                <logdir>/var/log/icecast</logdir>
                <webroot>/var/www/html</webroot>
        </paths>

        <logging>
                <accesslog>access.log</accesslog>
                <errorlog>error.log</errorlog>
              <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error
-->
        </logging>

        <security>
                <chroot>0</chroot>
                <changeowner>
                        <user>icecast</user>
                        <group>icecast</group>
                </changeowner>  -->
        </security>
</icecast>

ices.conf 0.2.3
---------------
<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
  <Playlist>
    <!-- This is the filename used as a playlist when using the builtin
         playlist handler. -->
    <File>apan.txt</File>
    <!-- Set this to 0 if you don't want to randomize your playlist, and to
         1 if you do. -->
    <Randomize>1</Randomize>
    <!-- Either builtin, perl, or python. -->
    <Type>builtin</Type>
    <!-- Module name to pass to the playlist handler if using  perl or
python.
         If you use the builtin playlist handler then this is ignored -->
    <Module>playlist</Module>
  </Playlist>

  <Execution>
    <!-- Set this to 1 if you want ices to launch in the background as a
         daemon -->
    <Background>0</Background>
    <!-- Set this to 1 if you want to see more verbose output from ices -->
    <Verbose>1</Verbose>
    <!-- This directory specifies where ices should put the logfile, cue file
         and pid file (if daemonizing). -->
    <BaseDirectory>/tmp</BaseDirectory>
  </Execution>

  <Stream>
    <Server>
      <!-- Hostname or ip of the icecast server you want to connect to -->
      <Hostname>10.0.0.3</Hostname>
      <!-- Port of the same -->
      <Port>8000</Port>
      <!-- Encoder password on the icecast server -->
      <Password>hackme</Password>
      <!-- Header protocol to use when communicating with the server.
           Use xaudiocast for icecast, or icy for shoutcast compatibility -->
      <Protocol>xaudiocast</Protocol>
    </Server>

    <!-- The name of the mountpoint on the icecast server -->
    <Mountpoint>/example1.ogg</Mountpoint>
    <!-- The name of the dumpfile on the server for your stream. DO NOT set
         this unless you know what you're doing.
    <Dumpfile>ices.dump</Dumpfile>
    -->
    <!-- The name of you stream, not the name of the song! -->
    <Name>Cool ices default name from XML</Name>
    <!-- Genre of your stream, be it rock or pop or whatever -->
    <Genre>Cool ices genre from XML</Genre>
    <!-- Longer description of your stream -->
    <Description>Cool ices description from XML</Description>
    <!-- URL to a page describing your stream -->
    <URL>Cool ices URL from XML</URL>
    <!-- 0 if you don't want the icecast server to publish your stream on
         the yp server, 1 if you do -->
    <Public>0</Public>

    <!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
         just used for display on yp and on the server. Try to keep it
         accurate -->
    <Bitrate>128</Bitrate>
    <!-- If this is set to 1, and ices is compiled with liblame support,
         ices will reencode the stream on the fly to the stream bitrate. -->
    <Reencode>0</Reencode>
    <!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
    <Channels>2</Channels>
  </Stream>
</ices:Configuration>

--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Icecast mailing list