• 0

C web proxy not showing images


Question

I programmed a web proxy in C and the pages seem to load fine. The only problem is images don't load up. I see all the requests for the images and see the data transmitted. When the messages are written to the browser, they don't show up. Anyone have an idea why this would be? What I'm confused on is do images have to be handled differently than the regular html text?

I'm reading everything from the web server(eg Google) into a char buffer of 2048 and write to the browser. This loops until there is nothing more to read. Like I said, the webproxy shows that there is information transferred, but I just get the red x.

Link to comment
https://www.neowin.net/forum/topic/397509-c-web-proxy-not-showing-images/
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Is the proxy sending the HTTP headers correctly?

While browsers usually display HTML pages properly if the headers aren't there, they can't display images if the headers aren't there...

I learnt this while I was creating a small webserver. Browsers only started displaying images when I implented the "sendheaders" function. HTML on the other hand was always displayed properly, even without headers.

  • 0
  anog said:
Is the proxy sending the HTTP headers correctly?

While browsers usually display HTML pages properly if the headers aren't there, they can't display images if the headers aren't there...

I learnt this while I was creating a small webserver. Browsers only started displaying images when I implented the "sendheaders" function. HTML on the other hand was always displayed properly, even without headers.

586806184[/snapback]

So I need to forward the entire request, including headers? I figured that just the GET request with the file and protocol was enough. I didn't think that I needed to include the entire header. Let me give this a try. Thanks for the explaination.

  • 0

Still no luck getting the image to load. I just don't see how I can transfer the image data correctly with a character buffer. Does anyone have an idea how I can handle this data correctly? The information that is being passed to the browser is the same information when you open an image in notepad, garbled text and symbols. Any suggestions?

  • 0
  minhaferzz said:
Still no luck getting the image to load.  I just don't see how I can transfer the image data correctly with a character buffer.  Does anyone have an idea how I can handle this data correctly?  The information that is being passed to the browser is the same information when you open an image in notepad, garbled text and symbols.  Any suggestions?

586809572[/snapback]

Be careful with your buffer, because it contains binary data if you use it for transferring images. Thus a string function like strlen() for example will likely not work --at least not all the time. You may want to consider an array of bytes instead.

The easy way to resolve your problem is to sniff on the network traffic with and without your proxy and then compare the results for the same requests, then you should be able to tell what is different when the proxy is enabled and it should be trivial to fix.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I had to turn it off a long time ago on my work machine because virtual desktops were brutal when switching. Big thread about it on Microsoft forums. With animations off it's instant. Sucks as I had to uninstall Deskscapes as it requires animations but on my work machine productivity takes precedence.
    • Even though this tweak is basically just a placebo, I still find myself using it fairly often. There are better options out there, but the CrapFixer app https://github.com/builtbybel/CrapFixer is useful for testing and restoring the original state if needed
    • That’s such a heartwarming story — it really shows the strong sense of community Waffle House is known for. If anyone’s curious about what they offer or planning a visit, you can see full menu with updated prices and calories for 2025.
    • I'm not sure I would really call that a hidden setting, and it's been around since Windows XP.
    • Main server is my old gaming PC from years ago.  It was an older AMD Phenom based desktop until last year when I "upgraded" it.  It hosts Nextcloud, Minecraft, Jellyfin and my personal website, and serves as a general purpose backup NAS.  It is apparent in this picture though it needs a good dusting. Operating System: Debian GNU/Linux (stable, but with backports kernel) CPU: AMD FX 8370 GPU: AMD Radeon RX 480 8GB (Used for hardware transcoding in Jellyfin) Memory: 16GB Corsair Vengeance DDR3 @ 1,866 MT/s Boot Drive: Western Digital Blue 500GB SATA SSD Mass Storage: 4 12TB Western Digital Gold HDDs.  Am using mdadm software RAID 5, with an encrypted LUKS/ext4 filesystem on the array.  My "off site backup" is 3 external drives in an encrypted software RAID 0 that I keep stored outside the house and bring in once a month to sync with the internal drives. Storage drive layout: mdadm -> LUKS -> ext4 Secondary server is a Raspberry Pi 4B that hosts PiHole and Wireguard via PiVPN.  I largely use the PiHole not just for ad blocking, but for parental controls on the kids.  I'm actually thinking of upgrading this to an x86 mini PC so I can get secure boot, SMART monitoring of the boot drive, etc. Router is a GL-iNet Flint 2, incoming internet connection is 1Gbps up, 1Gbps down, no data caps.  Fiber to my service pole then ethernet from there into the house. UPS is an APC Back-UPS XS 1500G.  I've had it for ages and had to replace the battery a few times.  The main server monitors it since our power is pretty unreliable (see screenshot) here in eastern Kentucky.  On the occasion the batteries run down the main server will automatically log into the Pi and do a graceful shutdown on it as part of its power down procedure.
  • Recent Achievements

    • First Post
      Johnny Mrkvička earned a badge
      First Post
    • Week One Done
      viraltui earned a badge
      Week One Done
    • One Month Later
      serfegyed earned a badge
      One Month Later
    • Dedicated
      firey earned a badge
      Dedicated
    • Dedicated
      fettermanj earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      656
    2. 2
      ATLien_0
      224
    3. 3
      Michael Scrip
      224
    4. 4
      Xenon
      146
    5. 5
      +FloatingFatMan
      143
  • Tell a friend

    Love Neowin? Tell a friend!