| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  |  | 
|  |  | 
|  | Include a description of the program, example usage with SSH
instructions, install & uninstall help, and license information. | 
|  | This tracking file is no longer needed. Finished implementation of the
tasks outlined within, and deciding not to bother with the "maybe"
configuration file task. | 
|  | Make `main.rs` responsible for only the `main()` function and command
line option handling. Move the actual application code to `lib.rs` for
clearer separation of concerns. | 
|  | Previously, errors would be returned immediately by the `?`/`try!`s.
Handle errors directly instead of returning them. Otherwise, the stream
listener would terminate, exiting the program, and forcing users to
restart it in order to restore functionality. | 
|  | When printing errors to STDERR, ensure we're writing newlines to
separate error messages. | 
|  | Using `expect` seems nicer here because it allows us to provide a more
meaningful error message. | 
|  |  | 
|  |  | 
|  | Parse the URL coming in from the TCP stream to check that it's a valid
URL. This allows us to fail early and not try to open strings that are
not URLs. Leverage the "url" crate to do the parsing.
Return a `Box<Error>` from `open_stream()` to enable us to return either
an `io` or a `Url` error in our `Result`.
Remove the `trim_right()` call on `url` since it's now a `Url` type
instead of a `String`, and as a result of parsing to a `Url`, it no
longer has the problematic trailing newline. | 
|  | Completed command line flag tasks. | 
|  |  | 
|  | Instead get these from function arguments, which in turn get fed from
the command line arguments passed by the user. | 
|  | Remove the magic number and replace it with a named value. | 
|  | Provide users with an option to change the default port the program
listens on. | 
|  | Instead of checking for the presence of the `-b` option before setting
it, just use an `Option` match since `opt_str` returns an
`Option<String>`. | 
|  | This will be used to set the browser to open URLs in. | 
|  | Use Getopts to parse command line options. Currently only has a 'help'
option, but this lays the foundation for user-customisable browser and
port values. | 
|  | For easier command line option parsing. | 
|  |  | 
|  | Allow us to parse URLs. | 
|  |  | 
|  | A script that can be installed on a remote machine and invoked with a
URL argument that will be opened by Hearurl locally.
For use with programs like the "openurl.pl" script for Irssi.
The script would function using this SSH command:
    $ ssh -R 37705:localhost:34254 user@host | 
|  | A few ideas for next steps now that we have the foundation working. | 
|  | Remove the `match` call from efa7f80d962aa0f55f3addbac1da206538d9242e
and use `unwrap_or_else` instead since we don't need to do anything
extra in the `Ok` case. | 
|  | Print all errors to STDERR. | 
|  | Use the Mac OS X `open` command to open Opera and pass in the contents
of the TCP stream as an argument, assuming it to be a URL that should
be opened in the browser.
Only dealing with the `open` command for now. Will be extending this to
support user-customisable browsers, so that any GUI browser that can be
opened with `open` can be used. | 
|  | The call to write to STDERR returns a `Result`. Wrap it in a `try!` to
handle the result and eliminate the "unused result" compilation
warning. | 
|  | We only need the `TcpListener` for what we're doing. | 
|  |  | 
|  | Going with TCP as that seems like it will work well. Get rid of our UDP
code. | 
|  | Replicate the TcpListener example from the Rust standard library docs.
Using TCP instead of UDP allows us to read directly to a string and read
arbitrary length streams.
Here we just print the stream input to the console. | 
|  | Copies the example given at
https://doc.rust-lang.org/std/net/struct.UdpSocket.html to experiment
with receiving and sending data over the socket. | 
|  | Rust v1.13.0.
    $ cargo init --bin |